home *** CD-ROM | disk | FTP | other *** search
-
- ;workspace
- ;option keypress values
-
- keys db 'LCBEISYNPJDURTKVGAMOXHF'
-
- ;option jump addresses
-
- even ;allign data
-
- option_jump:
- dw link_option ;insert
- dw create_box ;create/cancel
- dw branch ;branch
- dw delete_box ;delete
- dw insert_box ;insert
- dw single ;single
- dw yes_option ;select yes route
- dw no_option ;select no route
- dw move_to_route ;previous route
- dw create_subchart ;create subchart
- dw down ;goto subchart
- dw up_option ;up from subchart
- dw relinquish ;relinquish branch
- dw end_sub_option ;end sub
- dw copy_subchart ;copy subroutine
- dw view ;view box
- dw goto ;goto box
- dw ammend ;ammend box description
- dw renumber ;renumber chart option
- dw merge_chart ;load - merge - existing chart
- dw xchange ;xchange single/decision box
- dw search ;search for string
- akey_addresses:
- dw yes_route ;forward route
- dw yes_route ;yes route
- dw no_route ;no route
-
- ;arrow key values
-
- akeys:
- dw 05000h ;down arrow
- dw 04b00h ;left arrow
- dw 04800h ;up arrow
-
- ;table to option strings
-
- options_table:
- dw >a1 ;'Link' option string
- dw >a2 ;'Create' option string
- dw >a3 ;'Branch' option string
- dw >a4 ;'Erase' option string
- dw >a5 ;'Insert' option string
- dw >a6 ;'Simple' option string
- dw >a7 ;'Yes' option string
- dw >a8 ;'No' option string
- dw >a10 ;'Previous' option string
- dw >a11 ;'J)subchart' option string
- dw >a12 ;'Down' option string
- dw >a13 ;'Up' option string
- dw >a14 ;'Relinquish branch' string
- dw >a15 ;'Terminate' option string
- dw >a16 ;'K)subroutine' option string
- dw >a17 ;'View function' option string
- dw >a18 ;'Go to box' option string
- dw >a19 ;'ammend box' option string
- dw >a20 ;'M)renumber' option string
- dw >a21 ;'Load' option string
- dw >a22 ;'X)change' option string
- dw >a23 ;'H)search' option string
- dw >a24 ;'Cancel' option string
-
- ;option strings
-
- a1 db 'Link',0
- a2 db 'Create',0
- a3 db 'Branch',0
- a4 db 'Erase',0
- a5 db 'Insert',0
- a6 db 'Simple',0
- a7 db 'Yes',0
- a8 db 'No',0
- a10 db 'Previous',0
- a11 db 'J)subchart',0
- a12 db 'Down',0
- a13 db 'Up',0
- a14 db 'R)unlink',0
- a15 db 'Terminate',0
- a16 db 'K)copy subchart',0
- a17 db 'View descripter',0
- a18 db 'Goto',0
- a19 db 'A)edit',0
- a20 db 'M)renumber',0
- a21 db 'O)load',0
- a22 db 'X)change',0
- a23 db 'H)search',0
- a24 db 'Cancel',0
-
- even
-
- ;bookmarks
-
- bookmarks dw 10 dup 0 ;bookmarks
-
- db '. '
-
- end_program_data equ $
-
- data segment
-
- org end_program_data
-
- command_line db 80 dup ? ;command top line buffer
-
- even ;word align code pointer
-
- option_array dw option_count+2 dup ? ;options available array
-
- option_jump_offset equ option_jump-(option_array+2)
-
- route_exists_flag dw ?
- option_routes dw 4 dup ? ;extra route options
- routes dw 5 dup ? ;temporary store for routes of box
- current_route dw ? ;current route element offset
- route dw ? ;store for route offset/box
- route_select dw ? ;current selected route offset
- insert_mode dw ? ;insert mode flag
- first_branch_route dw ? ;route offset to first branched route
- branch_route_count dw ? ;total of branched routes
- first_route dw ? ;route offset of first fixed route
- key_option dw ? ;key option
- route_flag dw ? ;flag used by get options routine
- real_routes dw ? ;total of fixed routes
- stem_start dw ? ;stem marker
- centre_box dw ? ;highlighted box
- view_box dw ? ;box being linked
-
- route_follow dw ? ;following route from box being written
- offset_row equ route_follow ;current row offset from main path (used
- ;by printer routine)
- ;to screen
- main_route dw ? ;following box route
-
- subchart_route dw ? ;route of copied subchart
- terminating_route dw ? ;route of terminating box in subchart
- indicator db 6 dup ? ;indicator string that is by the side of
- ;the following stem of centre box
- left_route db 80 dup ? ;left route string
-
- ;path record workspace
-
- path_box equ left_route ;store for path record box number
- path_routes equ left_route+2 ;branches to other path records if bit
- ;15 is set then branch is to other path
- ;record elsewhere, if bit 14 is set then
- ;branch is to new path
- path_column equ left_route+6 ;column of path, from centre + is left
- ;and - is right
- path_row equ left_route+8 ;row of box corresponding to main path
- path_directions equ left_route+10 ;direction of branches left or right
-
- seg_count equ left_route+14 ;box segment count in map (printer)
- map_start equ left_route+16 ;address to start of map
- map_start2 equ left_route+20 ;address to start of map
- map_end equ left_route+24 ;end of current map address
- end_maps equ left_route+28 ;end of map data
-
- ;string workspace
-
- left_route_end dw ? ;size of left route
- right_route db 40 dup ? ;buffer to right side of horizontal stem
- s db 256 dup ? ;string buffer
- link_string db 10 dup ? ;used to indicate box being linked
- number_buffer db 21+11 dup ? ;used to store route of box
-
- even
-
- descripter_string db 256 dup ? ;descripter string buffer
- descripter_count dw ? ;length of descripter string in buffer
- message db 80 dup ? ;bottom line message buffer
- message_length dw ? ;message length
- box_save dw ? ;store for current box
- link_box dw ? ;box being linked
-
- box_to_subchart dw ? ;leading box to copied subchart
- route_to_subchart dw ? ;leading route of it
- subchart_link dw ? ;box that follows from copied subchart
- box_of_route dw ? ;box of route of box
- box dw ? ;box store
- follow_route dw ? ;following route of following box
- follow_box dw ? ;used by screen routine
- box_route dw ?
- trailing_box dw ?
- route_exists dw ? ;flag indicating route exists
-
- chart dw 2 dup ? ;20 bit address of start of chart data
- start_free_memory dw 2 dup ? ;20 bit address of end of chart data
- ram_top dw 2 dup ? ;20 bit address to end of free memory
-
- other_boxes dw 2 dup ? ;store for other box routes
- column_count equ other_boxes+2 ;total number of columns in chart
-
- other_box_routes dw 2 dup ?
- stack_mark equ other_box_routes ;used to mark stack pointer
-
- obro equ other_box_routes-other_boxes
-
- akey_jump dw 3 dup ? ;contains jump addresses for arrow key
- ;route options
-
- akey_jump_offset equ (akey_jump-akeys)-2
-
- shift_count dw 2 dup ? ;used to store number of bytes to move
-
- ;stores to preserve registers upon interrupt
-
- _sp dw ? ;used to preserve the stack pointer
- _ss dw ?
-
- ;stack pointers
-
- end_stack dw ? ;pointer to end of program data
- sub_stack dw ? ;subchart stack pointer
- stack_segment dw ? ;segment of subchart stack
- subchart_box dw ? ;temporary store for return box and its
- subchart_parent dw ? ;parent on stack
- levels dw ? ;level count when moving from end of
- ;subchart to next parent box
-
- ;video workspace
-
- video_pointer dw ? ;offset to video map
- video_base dw ? ;base of video screen map
- video_backup dw 2000 dup ? ;backup for video when in background
- crtc_address dw ? ;crtc port address for background mode
-
- ;editing workspace
-
- end_string dw ? ;end of string being edited
- edit_cursor dw ? ;cursor coordinates
- start_string dw ? ;start of string being edited
- start_string_screen dw ? ;start of string seen on line
- escape_flag dw ? ;indicates if escape key enabled
-
-
- temp1 dw 2 dup ? ;temporary variables
- temp2 dw 2 dup ?
- temp3 dw 2 dup ?
- temp4 dw 2 dup ?
- temp5 dw ?
-
- reserve dw 2 dup ? ;store for reserved bytes
-
- current_box dw ? ;current box
- next_box dw ? ;next new box
-
- menu db menu_options dup ? ;menu options available string
- flag db ? ;flags
- new_chart db ? ;0ffh if no flowchart in memory
- chart_flag db ? ;flowchart loop entry flag
- chart_active db ? ;0 if out into dos
- middle_5 db ? ;non zero if middle 5 down
- cursor_pos db 3 dup ? ;screen cursor coordinates
- this_box db ? ;box that is written to screen
- hypen db ? ;hypen flag if descripter is split
- left_route_indicator db ? ;indicator character for left route stem
- route_string db 3 dup ? ;route indicator string
- err db ? ;flags
- box_made db ? ;chart entry flag
- split_line db 3 dup ? ;flag indicating descripter string split
- hyphen db ? ;0 if no hyphen at end of line
-
- attribute db ? ;video character aptribute
- active_page db ? ;current video page
- direct_video db ? ;video output flag; 0ffh write direct
-
- even
-
- display_match dw ? ;restore display if lsb=msb
-
- ;cursor variables
-
- cursorxy dw ? ;cursor position
- cursor_data dw ? ;used to preserve position of cursor
- cursor_type dw ? ;used to preserve state of cursor
- cursor_on dw ?
- exit_cursor_type dw ? ;original state of cursor
- saved_screen dw 2 dup ? ;pointer to interrupted screen dump
- display_type dw ? ;type of display to remain with
- filename db 66 dup ? ;used to store flowchart filename
- handle dw ? ;handle for reading/writing to/from disk
-
- search_string db 128 dup ? ;buffer for search string
-
- end_program:
-
- program_size equ end_program/16+1
-
- start_of_chart equ ((end_program/16)+1)*16
-
- ;end